package sjp.demo.algorithm.doublepointer;

import org.junit.Assert;
import org.junit.Test;

import java.util.Arrays;
import java.util.stream.Collectors;

/**
 * 给定一个字符串，你需要反转字符串中每个单词的字符顺序，同时仍保留空格和单词的初始顺序。
 * <p>
 *  
 * <p>
 * 示例：
 * <p>
 * 输入："Let's take LeetCode contest"
 * 输出："s'teL ekat edoCteeL tsetnoc"
 *  
 * <p>
 * 提示：
 * <p>
 * 在字符串中，每个单词由单个空格分隔，并且字符串中不会有任何额外的空格。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/reverse-words-in-a-string-iii
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class ReverseWordsInAString3 {
    public String reverseWords(String s) {
        String[] words = s.split(" ");
        for (int i = 0; i < words.length; i++) {
//            words[i] = new StringBuffer(words[i]).reverse().toString();

            char[] chars = words[i].toCharArray();
            ReverseString.reverseString(chars);
            words[i] = new String(chars);

        }
        return String.join(" ", words);
    }

    @Test
    public void test() {
        String s = "Let's take LeetCode contest";
        String result = reverseWords(s);
        Assert.assertEquals("s'teL ekat edoCteeL tsetnoc", result);
    }
}
